package com.gsafety.library.Net;

import com.gsafety.library.Net.okhttputil.Cookie.CookieJar;

import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSocketFactory;

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;

/**
 * @author : lj
 * @date : 2020/9/18 17:31
 */
public interface NetProvider {
    /**
     * 添加网络请求拦截器
     */
    @Nullable
    ArrayList<Interceptor> configInterceptors();

    /**
     * 添加https请求拦截器
     */
    void configHttps(OkHttpClient.Builder builder);

    /**
     * 添加cookie持久化拦截器
     */
    @Nullable
    CookieJar configCookie();

    /**
     * 添加拦截器
     */
    RequestHandler configHandler();

    /**
     * 链接超时时间
     */
    Long configConnectTimeoutSecs();

    /**
     * 读取超时时间
     */
    Long configReadTimeoutSecs();

    /**
     * 写入超时时间
     */
    Long configWriteTimeoutSecs();

    /**
     * 是否开启log打印日志
     */
    Boolean configLogEnable();

    /**
     * 是否获取这个SSLSocketFactory
     */
    SSLSocketFactory getSSLSocketFactory();

    /**
     * 是否获取这个HostnameVerifier
     */
    HostnameVerifier getHostnameVerifier();

}
